Personal computer systems generally include one or more local buses that permit peripheral devices to be connected to the computer system's microprocessor. One such local bus is the PCI (Peripheral Component Interconnect) bus. A design concern associated with virtually any local bus architecture is the maximum rate of data transfer, or throughput, that can be achieved on the bus. The PCI bus provides substantial improvements over its predecessors in terms of data throughput. However, certain applications require even greater throughput than PCI can provide, particularly audio, video, and 3-D graphics applications.
Audio, video, and graphics applications are typically supported by peripheral devices known as "adapters" or "accelerators", that can be coupled to a local bus in a computer system. One way to reduce throughput requirements is to provide more local memory on the adapter. This solution reduces the amount of data that must be communicated over the bus and thus enhances the performance of the device. A disadvantage of this solution, however, is that many of these adapters use a type of memory that is expensive or difficult to obtain. Also, increasing the amount of local memory tends to increase the overall cost of the device. In addition, it may be impossible in some instances to increase the amount of local memory without purchasing a new adapter card.
In contrast, the system memory in a computer system generally includes much more memory than these adapters can provide and tends to be easier to upgrade. Hence, what is needed is a solution which will enable audio, video, or graphics adapters to more effectively make use of system memory and thereby reduce the amount of local memory that is required. In particular, what is needed is a high-throughput, component-level interconnect through which peripheral devices such as audio, video, or graphics adapters can access system memory.